package com.xbongbong.paas.service;

import com.xbongbong.paas.toolbox.exception.XbbException;
import com.xbongbong.pro.onlineEditor.dto.ContractTemplateBaseDeleteDTO;
import com.xbongbong.pro.onlineEditor.dto.ContractTemplateBaseEnableDTO;
import com.xbongbong.pro.onlineEditor.dto.ContractTemplateBaseListDTO;
import com.xbongbong.pro.onlineEditor.dto.ContractTemplateBaseQueryDTO;
import com.xbongbong.pro.onlineEditor.dto.ContractTemplateBaseSaveDTO;
import com.xbongbong.pro.onlineEditor.dto.FileCopySaveDTO;
import com.xbongbong.pro.onlineEditor.dto.FileDetailDTO;
import com.xbongbong.pro.onlineEditor.dto.FileRenameDTO;
import com.xbongbong.pro.onlineEditor.sdk.dto.FiledUploadDTO;
import com.xbongbong.pro.onlineEditor.sdk.vo.FiledUploadVO;
import com.xbongbong.pro.onlineEditor.sdk.vo.GetFileDownloadUrlVO;
import com.xbongbong.pro.onlineEditor.sdk.vo.GetFileInfoVO;
import com.xbongbong.pro.onlineEditor.sdk.vo.ListUserInfoVO;
import com.xbongbong.pro.onlineEditor.vo.ContractTemplateBaseListVO;
import com.xbongbong.pro.onlineEditor.vo.ContractTemplateBaseQueryVO;
import com.xbongbong.pro.onlineEditor.vo.FileCopySaveVO;
import com.xbongbong.pro.onlineEditor.vo.FileDetailVO;

import java.util.List;

/**
 * @author: yingjf
 * @date: 2023/3/8 14:11
 * @description: 在线编辑器相关接口
 */
public interface OnlineEditorService {

    /**
     * 获取文件信息
     * date: 2023/3/9 19:07
     * @author yingjf
     * @param fileId
     */
    GetFileInfoVO getFileInfo(String fileId);


    /**
     * 获取文件下载地址
     * date: 2023/3/9 19:20
     * @author yingjf
     * @param fileId
     */
    GetFileDownloadUrlVO getFileDownloadUrl(String fileId);


    /**
     * 单阶段提交
     * date: 2023/3/9 19:29
     * @author yingjf
     * @param fileId
     * @param filedUploadDTO
     */
    FiledUploadVO filedUpload(String fileId, FiledUploadDTO filedUploadDTO);

    /**
     * 封装用户信息
     * date: 2023/3/16 19:29
     * @author yingjf
     * @param userIds
     */
    List<ListUserInfoVO> listUserInfo(List<String> userIds);
    /**
     * 合同模板库-列表
     * date: 2023/3/8 14:16
     *
     * @param contractTemplateBaseListDTO
     * @author yingjf
     */
    ContractTemplateBaseListVO contractTemplateBaseList(ContractTemplateBaseListDTO contractTemplateBaseListDTO) throws XbbException;


    /**
     * 合同模板库-启用
     * date: 2023/3/8 14:55
     *
     * @param contractTemplateBaseEnableDTO
     * @author yingjf
     */
    void contractTemplateBaseEnable(ContractTemplateBaseEnableDTO contractTemplateBaseEnableDTO) throws XbbException;

    /**
     * 合同模板库-删除
     * date: 2023/3/8 14:55
     *
     * @param contractTemplateBaseDeleteDTO
     * @author yingjf
     */
    void contractTemplateBaseDelete(ContractTemplateBaseDeleteDTO contractTemplateBaseDeleteDTO) throws XbbException;

    /**
     * 合同模板库-新建or更新
     * date: 2023/3/8 16:09
     * @author yingjf
     * @param contractTemplateBaseSaveDTO
     */
    void contractTemplateBaseSave(ContractTemplateBaseSaveDTO contractTemplateBaseSaveDTO)throws XbbException;

    /**
     * 合同模板库-查询
     * date: 2023/3/10 09:17
     * @author yingjf
     * @param contractTemplateBaseQueryDTO
     */
    ContractTemplateBaseQueryVO contractTemplateBaseQuery(ContractTemplateBaseQueryDTO contractTemplateBaseQueryDTO)throws XbbException;

    /**
     * 文件拷贝保存
     * date: 2023/3/10 11:20
     * @author yingjf
     * @param fileCopySaveDTO
     */
    FileCopySaveVO fileCopySave(FileCopySaveDTO fileCopySaveDTO)throws XbbException;

    /**
     * 文件改名
     * date: 2023/3/14 16:07
     * @author yingjf
     * @param fileRenameDTO
     */
    void fileRename(FileRenameDTO fileRenameDTO)throws XbbException;

    /**
     * 文件详情获取
     * date: 2023/3/15 15:40
     * @author yingjf
     * @param fileDetailDTO
     */
    FileDetailVO fileDetail(FileDetailDTO fileDetailDTO)throws XbbException;
}
